The demand for accurate and real-time video manipulation and processing techniques is of growing importance. In particular, algorithms that can separate background variations in a video stream, which are highly correlated between frames, from foreground objects in the video stream of potential interest are at the forefront of modern data-analysis research. Background/foreground separation can be an integral step in detecting, identifying, tracking, and recognizing objects in video sequences. Many modern computer vision applications demand processing that can be implemented in real-time, and that are robust enough to handle diverse, complicated, and cluttered backgrounds. Effective methods often need to be flexible enough to accommodate changes in a scene due to, for instance, illumination changes that can occur throughout the day, or location changes where the application is being implemented. Accordingly, what is needed are techniques that can separate foreground and background elements from video data that are efficient enough to provide processing results in real-time on consumer-grade computing hardware, and that are flexible enough to operate on changing and/or complex backgrounds.